/**
 * 使用jwt管理token
 */

// 导入jsonwebtoken生成jwt字符串的模块
const jwt = require("jsonwebtoken")

// 获取密钥和token失效时间
const { secretKey, expiresIn } = require("./config")

/**
 * 生成token
 * @param {String} uid 用户编号
 * @param {Number} scope 身份
 * @returns 
 */
function generateToken(uid, scope) {
    // 生成token使用jwt的sign()方法
    return jwt.sign({ uid, scope }, secretKey, { expiresIn })
}

/**
 * token认证
 */
function verifyToken(token) {
    try {
        // token认证使用jwt的verify
        return jwt.verify(token, secretKey)
    } catch (e) {
        return false
    }
}

module.exports = {
    generateToken,
    verifyToken
}